package com.example.wxordersystem.dto;

import com.example.wxordersystem.entity.OrderDetail;
import com.example.wxordersystem.enums.OrderStatusEnum;
import com.example.wxordersystem.enums.PayStatusEnum;
import com.example.wxordersystem.utils.Date2LongSerializer;
import com.example.wxordersystem.utils.EnumUtil;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 订单主表
 * @author 常红伟
 */
@Data
public class OrderDTO {

    private String orderId;


    /**买家名字*/
    private String buyerName;

    /**买家电话*/
    private String buyerPhone;

    /** 买家地址*/
    private String buyerAddress;

    /**买家微信openid*/
    private String buyerOpenid;

    /**订单总金额*/
    private BigDecimal orderAmount;

    /**订单状态, 默认为新下单*/
    private Integer orderStatus;

    /**支付状态, 默认未支付*/
    private Integer payStatus;

    /** 创建时间. */
    @JsonSerialize(using = Date2LongSerializer.class)
    private Date createTime;

    /** 更新时间. */
    @JsonSerialize(using = Date2LongSerializer.class)
    private Date updateTime;


    @JsonIgnore
    public OrderStatusEnum getOrderStatusEnum() {
        return EnumUtil.getByCode(orderStatus, OrderStatusEnum.class);
    }

    @JsonIgnore
    public PayStatusEnum getPayStatusEnum() {
        return EnumUtil.getByCode(payStatus, PayStatusEnum.class);
    }

    List<OrderDetail> orderDetailList;
}
